package com.example.certificate.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.certificate.dto.CardBasePageDto;
import com.example.certificate.dto.InsRoleDto;
import com.example.certificate.dto.common.DisableStatDto;
import com.example.certificate.entity.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.certificate.entity.User;
import com.example.certificate.utils.ResultEntity;
import com.example.certificate.vo.CascadeCardVo;

import java.util.List;

/**
 * <p>
 * 系统角色表 服务类
 * </p>
 *
 * @author hao
 * @since 2022-02-23 17:13:12
 */
public interface SysRoleService extends IService<SysRole> {
    /**
     * @Author Hao
     * @Description  新增用户角色
     * @Date 2021/12/17
     * @Param [dto, user]
     * @return com.han.nternational.utils.ApiResponse
     **/
    ResultEntity insRole(InsRoleDto dto, User user);

    /**
     * @Author Hao
     * @Description  获取用户角色树
     * @Date 2021/12/17
     * @Param []
     * @return com.han.nternational.utils.ResultEntity
     **/
    ResultEntity selRoleTree();

    /**
     * @Author Hao
     * @Description  分页查询用户角色信息
     * @Date 2022/1/12
     * @Param [dto]
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.han.internation.domain.entity.SysRole>
     **/
    Page<SysRole> selRolePage(CardBasePageDto dto);

    /**
     * @Author Hao
     * @Description  修改角色状态
     * @Date 2022/1/12
     * @Param [dto]
     * @return com.han.internation.utils.ResultEntity
     **/
    ResultEntity updateStatus(DisableStatDto dto);

    /**
     * @Author Hao
     * @Description  用户角色级联选择器
     * @Date 2022/1/12
     * @Param []
     * @return com.han.internation.utils.ResultEntity
     **/
    List<CascadeCardVo> cascadeRole();
}
